@echo off

REM MiniCPM-V 多任务推理服务器启动脚本
REM 实现模型一次加载，多次使用，提高推理效率

REM 设置中文编码
echo 正在配置中文环境...
chcp 65001 >nul

REM 显示欢迎信息
cls
echo ===================================================
echo            MiniCPM-V 多任务推理服务器
 echo            模型一次加载，多次推理版本
 echo ===================================================
echo.
echo 功能说明：
echo 1. 交互式模式：启动交互式命令行界面，可以连续执行多个推理任务
 echo 2. 非交互式模式：直接指定图片或视频目录进行批量推理
 echo.
echo 使用方法：
echo - 交互式模式：双击此脚本或运行 "start_multi_infer.bat interactive"
 echo - 图片批量推理：运行 "start_multi_infer.bat image [图片目录路径]"
 echo - 视频批量推理：运行 "start_multi_infer.bat video [视频目录路径]"
 echo.
echo 示例：
echo start_multi_infer.bat image images
echo start_multi_infer.bat video videos
echo ===================================================
echo.

REM 检查Python环境
python --version >nul 2>&1
if %errorlevel% neq 0 (
    echo 错误：未找到Python环境，请先安装Python 3.10或更高版本
    pause
    exit /b 1
)

REM 解析命令行参数
set MODE=interactive
set DIR_PATH=

if "%1"=="image" (
    set MODE=image
    set DIR_PATH=%2
)

if "%1"=="video" (
    set MODE=video
    set DIR_PATH=%2
)

if "%1"=="interactive" (
    set MODE=interactive
)

REM 启动多任务推理服务器
if "%MODE%"=="interactive" (
    echo 启动交互式多任务推理服务器...
    echo 注意：首次启动会加载模型，请耐心等待...
    echo.
    python multi_infer_server.py --interactive
)

if "%MODE%"=="image" (
    echo 启动批量图片推理...
    if "%DIR_PATH%"=="" (
        python multi_infer_server.py --image_dir images
    ) else (
        python multi_infer_server.py --image_dir "%DIR_PATH%"
    )
)

if "%MODE%"=="video" (
    echo 启动批量视频推理...
    if "%DIR_PATH%"=="" (
        python multi_infer_server.py --video_dir videos
    ) else (
        python multi_infer_server.py --video_dir "%DIR_PATH%"
    )
)

REM 等待用户按键
if %errorlevel% neq 0 (
    echo.
    echo 程序运行出错，请检查错误信息
    pause
    exit /b %errorlevel%
)

if "%MODE%"=="interactive" (
    pause
)